package tienda.zapateria.siszap.gui;

import java.awt.Image;
import java.awt.Toolkit;
import java.util.ArrayList;
import javax.swing.JInternalFrame;
import org.rx.cr.db.DBA;
import org.rx.cr.conf.Config;
import org.rx.cr.gui.DesktopPanel;
import org.rx.cr.util.Utilitarios;
import static org.rx.cr.util.Utilitarios.centreaVentana;
import static org.rx.cr.util.Utilitarios.maximizarAbsoluta;
import static org.rx.cr.util.Utilitarios.setIconoVentana;
import tienda.zapateria.siszap.be.BEPersona;
import tienda.zapateria.siszap.be.BERol;
import tienda.zapateria.siszap.gui.control.JIFAsignarArticuloCarrito;
import tienda.zapateria.siszap.gui.control.JIFAsignarArticuloCompra;
import tienda.zapateria.siszap.gui.control.JIFAsignarTalla;
import tienda.zapateria.siszap.gui.control.JIF_AdministrarArticulo;
import tienda.zapateria.siszap.gui.control.JIF_AdministrarCarrito;
import tienda.zapateria.siszap.gui.control.JIF_AdministrarCompra;
import tienda.zapateria.siszap.gui.control.JIF_AdministrarMarca;
import tienda.zapateria.siszap.gui.control.JIF_AdministrarProveedor;
import tienda.zapateria.siszap.gui.control.JIF_AdministrarTipo;
import tienda.zapateria.siszap.seguridad.JIF_AdministrarPersonal;

public final class JF_Principal extends javax.swing.JFrame {

    private DesktopPanel desktopPanel;

    public Config conf;
    public BEPersona personal_logueado;
    public JIF_AdministrarArticulo jIF_AdministrarArticulo;
    public JIF_AdministrarTipo jIF_AdministrarTipo;
    public JIF_AdministrarMarca jIF_AdministrarMarca;
    public JIF_AdministrarProveedor jIF_AdministrarProveedor;
    public JIF_AdministrarPersonal jIF_AdministrarPersonal;
    public JIFAsignarTalla jifAsignarTalla;
    public JIF_AdministrarCarrito jIF_AdministrarCarrito;
    public JIFAsignarArticuloCarrito jIFAsignarArticulo;
    public JIF_AdministrarCompra jIF_AdministrarCompra;
    public JIFAsignarArticuloCompra jIFAsignarArticuloCompra;
    private ArrayList<BERol> modulos_cargados = null;

    public JF_Principal(Config conf) {
        DBA.selectMYSQL();
        initComponents();
        setConf(conf);

        desktopPanel = new DesktopPanel();
        setTitle("SISTEMA DE ZAPATERÍA");
        setIconoVentana(this, "/tienda/zapateria/siszap/imagen/app_icon.png");
        desktopPanel.setAppName("SISZAP");
        desktopPanel.setImageApp("/tienda/zapateria/siszap/imagen/app_icon.png");
        desktopPanel.setDesktopBackground("/tienda/zapateria/siszap/imagen/Fondo2.jpeg");
        jPanel1.add(desktopPanel);
        maximizarAbsoluta(this);
        centreaVentana(this);

        jIF_AdministrarArticulo = new JIF_AdministrarArticulo(this);
        jIF_AdministrarTipo = new JIF_AdministrarTipo(this);
        jIF_AdministrarMarca = new JIF_AdministrarMarca(this);
        jIF_AdministrarProveedor = new JIF_AdministrarProveedor(this);
        jIF_AdministrarPersonal = new JIF_AdministrarPersonal(this);
        jifAsignarTalla = new JIFAsignarTalla(this);
        jIF_AdministrarCarrito = new JIF_AdministrarCarrito(this);
        jIFAsignarArticulo = new JIFAsignarArticuloCarrito(this);
        jIF_AdministrarCompra = new JIF_AdministrarCompra(this);
        jIFAsignarArticuloCompra = new JIFAsignarArticuloCompra(this);

    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollBar1 = new javax.swing.JScrollBar();
        jPanel1 = new javax.swing.JPanel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jmHardware = new javax.swing.JMenu();
        jmiEquipoComputo = new javax.swing.JMenuItem();
        jMenu4 = new javax.swing.JMenu();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenu5 = new javax.swing.JMenu();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenu6 = new javax.swing.JMenu();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenu7 = new javax.swing.JMenu();
        jMenuItem7 = new javax.swing.JMenuItem();
        jMenuItem8 = new javax.swing.JMenuItem();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenuItem10 = new javax.swing.JMenuItem();
        jmSeguridad = new javax.swing.JMenu();
        jmiUsuarios = new javax.swing.JMenuItem();
        jmAyuda = new javax.swing.JMenu();
        jmiInformacion = new javax.swing.JMenuItem();
        jmSalir = new javax.swing.JMenu();
        jmiSalir = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setLayout(new java.awt.BorderLayout());

        jmHardware.setText("Articulo");

        jmiEquipoComputo.setText("Agregar/Modificar");
        jmiEquipoComputo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiEquipoComputoActionPerformed(evt);
            }
        });
        jmHardware.add(jmiEquipoComputo);

        jMenuBar1.add(jmHardware);

        jMenu4.setText("Compras");

        jMenuItem2.setText("Compra");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem2);

        jMenuBar1.add(jMenu4);

        jMenu5.setText("Ventas");

        jMenuItem3.setText("Venta");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });
        jMenu5.add(jMenuItem3);

        jMenuBar1.add(jMenu5);

        jMenu6.setText("Proveedores");

        jMenuItem5.setText("Agregar/Modificar");
        jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem5ActionPerformed(evt);
            }
        });
        jMenu6.add(jMenuItem5);

        jMenuBar1.add(jMenu6);

        jMenu7.setText("Reportes");

        jMenuItem7.setText("Compras");
        jMenu7.add(jMenuItem7);

        jMenuItem8.setText("Articulos");
        jMenu7.add(jMenuItem8);

        jMenuItem6.setText("Ventas");
        jMenu7.add(jMenuItem6);

        jMenuItem10.setText("Proveedores");
        jMenu7.add(jMenuItem10);

        jMenuBar1.add(jMenu7);

        jmSeguridad.setText("Seguridad");

        jmiUsuarios.setText("Administrar Usuarios");
        jmiUsuarios.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiUsuariosActionPerformed(evt);
            }
        });
        jmSeguridad.add(jmiUsuarios);

        jMenuBar1.add(jmSeguridad);

        jmAyuda.setText("Ayuda");

        jmiInformacion.setText("Información");
        jmiInformacion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiInformacionActionPerformed(evt);
            }
        });
        jmAyuda.add(jmiInformacion);

        jMenuBar1.add(jmAyuda);

        jmSalir.setText("Salir");

        jmiSalir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F4, java.awt.event.InputEvent.ALT_MASK));
        jmiSalir.setText("Salir");
        jmiSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiSalirActionPerformed(evt);
            }
        });
        jmSalir.add(jmiSalir);

        jMenuBar1.add(jmSalir);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 702, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jmiSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiSalirActionPerformed
        Utilitarios.salir(this);
    }//GEN-LAST:event_jmiSalirActionPerformed

    private void jmiEquipoComputoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiEquipoComputoActionPerformed
        insertarInternalFrame(jIF_AdministrarArticulo);
    }//GEN-LAST:event_jmiEquipoComputoActionPerformed

    private void jmiUsuariosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiUsuariosActionPerformed
        // TODO add your handling code here:
        // iniciarPersonal();
        insertarInternalFrame(jIF_AdministrarPersonal);

    }//GEN-LAST:event_jmiUsuariosActionPerformed

    private void jmiInformacionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiInformacionActionPerformed
        // TODO add your handling code here:


    }//GEN-LAST:event_jmiInformacionActionPerformed

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
        // TODO add your handling code here:
        insertarInternalFrame(jIF_AdministrarCompra);
    }//GEN-LAST:event_jMenuItem2ActionPerformed

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
        insertarInternalFrame(jIF_AdministrarCarrito);
    }//GEN-LAST:event_jMenuItem3ActionPerformed

    private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed
     insertarInternalFrame(jIF_AdministrarProveedor);
    }//GEN-LAST:event_jMenuItem5ActionPerformed

    /**
     * @param args the command line arguments
     */

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenu jMenu5;
    private javax.swing.JMenu jMenu6;
    private javax.swing.JMenu jMenu7;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem10;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JMenuItem jMenuItem8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollBar jScrollBar1;
    private javax.swing.JMenu jmAyuda;
    private javax.swing.JMenu jmHardware;
    private javax.swing.JMenu jmSalir;
    private javax.swing.JMenu jmSeguridad;
    private javax.swing.JMenuItem jmiEquipoComputo;
    private javax.swing.JMenuItem jmiInformacion;
    private javax.swing.JMenuItem jmiSalir;
    private javax.swing.JMenuItem jmiUsuarios;
    // End of variables declaration//GEN-END:variables

    public void insertarInternalFrame(JInternalFrame jif) {
        desktopPanel.insertarInternalFrame(jif);

    }

    @Override
    public Image getIconImage() {
        Image retValue = Toolkit.getDefaultToolkit().
                getImage(ClassLoader.getSystemResource("tienda.zapateria.siszap.imagen/app_icon.png"));
        return retValue;

    }

    public Config getConf() {
        return conf;
    }

    public void setConf(Config conf) {
        this.conf = conf;
    }

    public void setPersonalLogueado(BEPersona beUsuario) {
        System.out.println("esto es el bepersona " + beUsuario.getNombre());
        this.personal_logueado = beUsuario;
    }

    public String getDatosPersonalLogueado() {
        return this.personal_logueado != null ? this.personal_logueado.getApellido().toUpperCase() + ", " + Utilitarios.toUpperCaseInit(this.personal_logueado.getNombre()) : "";
    }
    
    public int getIdPersonalLogueado() {
        return this.personal_logueado != null ? this.personal_logueado.getPersonaid() : 0;
    }

    public ArrayList<BERol> getModulos_cargados() {
        return modulos_cargados;
    }

    public void setModulos_cargados(ArrayList<BERol> modulos_cargados) {
        this.modulos_cargados = modulos_cargados;
    }
}
